package com.hongxun.project.assets.iBoxes.service;

import java.util.List;
import java.util.UUID;

import com.hongxun.common.utils.bean.BeanUtils;
import com.hongxun.project.assets.pBoxes.domain.PBoxes;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.hongxun.project.assets.iBoxes.mapper.IBoxesMapper;
import com.hongxun.project.assets.iBoxes.domain.IBoxes;
import com.hongxun.common.utils.text.Convert;

/**
 * 箱 服务层实现
 *
 * @author hongxun
 * @date 2019-03-19
 */
@Service
public class IBoxesServiceImpl implements IIBoxesService {
    @Autowired
    private IBoxesMapper iBoxesMapper;

    /**
     * 查询箱信息
     *
     * @param id 箱ID
     * @return 箱信息
     */
    @Override
    public IBoxes selectIBoxesById(String id) {
        return iBoxesMapper.selectIBoxesById(id);
    }

    /**
     * 查询箱列表
     *
     * @param iBoxes 箱信息
     * @return 箱集合
     */
    @Override
    public List<IBoxes> selectIBoxesList(IBoxes iBoxes) {
        return iBoxesMapper.selectIBoxesList(iBoxes);
    }

    @Override
    public List<IBoxes> getBoxesForByqId(IBoxes iBoxes) {
        return iBoxesMapper.getBoxesForByqId(iBoxes);
    }

    /**
     * 新增箱
     *
     * @param iBoxes 箱信息
     * @return 结果
     */
    @Override
    public int insertIBoxes(IBoxes iBoxes) {
        iBoxes.setId(UUID.randomUUID().toString());
        return iBoxesMapper.insertIBoxes(iBoxes);
    }

    /**
     * 修改箱
     *
     * @param iBoxes 箱信息
     * @return 结果
     */
    @Override
    public int updateIBoxes(IBoxes iBoxes) {
        return iBoxesMapper.updateIBoxes(iBoxes);
    }

    /**
     * 删除箱对象
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    @Override
    public int deleteIBoxesByIds(String ids) {
        return iBoxesMapper.deleteIBoxesByIds(Convert.toStrArray(ids));
    }

    public void file(List<PBoxes> pBoxes) {
        for (PBoxes p : pBoxes) {
            if (p.getDatastate().equals("删除")) {
                deleteIBoxesByIds(p.getId());
            } else {
                IBoxes i = new IBoxes();
                BeanUtils.copyBeanProp(i, p);
                if (selectIBoxesById(p.getId()) != null) {
                    updateIBoxes(i);
                } else {
                    iBoxesMapper.insertIBoxes(i);
                }
            }
        }
    }


    @Override
    public Integer getCountsForType(String id , String num , String ws){
        return iBoxesMapper.getCountsForType(id,num,ws);
    }

    @Override
    public String getCountsListForNum(String id , String num){
        return iBoxesMapper.getCountsListForNum(id,num);
    }



}
